//
//  Game.h
//  Dungeons and Princesses
//
//  Created by phuong on 10/15/11.
//  Copyright (c) 2011 SD Networks. All rights reserved.
//

#ifndef Dungeons_and_Princesses_Game_h
#define Dungeons_and_Princesses_Game_h

#include "Castle.h"
#include "Room.h"
#include "string"
#include <sstream>
#include "Player.h"
#include "LockableContainer.h"

#define DELIMS ",\n"
#define MAX 250

class Monster;
//#include "TextInterface.h"

// these functions will go in utility class
//string lowerCase(string takeOrder);
//string getCommand(string takeOrder);
class Interface;
class NTextInterface;

class Game {

private:
    // Game vars

    Interface * myInterface;
    Room * currentRoom;
    Castle * gameCastle;
    Player *currentPlayer;

    // arguments to pass to gui Class
    int argc;
    const char * argv;
    void initGame();
protected:

public:

    Game ();
    void run();
    void testDelegate(std::string myStringToTest);
    bool setupPlayer(std::string playerName, std::string charClass, std::string &errorMSG);
    void saveGame(string, bool);
    void loadSavedGame(int);
    vector<std::string> * loadHelp();
    vector<string> getGameList(bool &);

    Player * getCurrentPlayer();
    Room * getCurrentRoom();
    Castle * getCastle();

    void setCurrentRoom(Room * currentRoom);
    void randomMonster();


};

#endif
